<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
<title>javascript</title>
<style type="text/css">
body{font-size:12px;}
#txt{
    height:400px;
    width:600px;
	border:#333 solid 1px;
	padding:5px;}
p{
	line-height:18px;
	text-indent:2em;}
.txt_wh{
  height:300px !important;
    width:1000px !important;
  }
.txt_clo{
  color:coral;
}
.hide{display: none;}
</style>
</head>
<body>
  <h2 id="con">JavaScript课程</H2>
  <div id="txt" > 
     <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>
        <p>1. JavaScript入门篇，让不懂JS的你，快速了解JS。</p>
        <p>2. JavaScript进阶篇，让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>
        <p>3. 学完以上两门基础课后，在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>
  </div>
  <form>
  <!--当点击相应按钮，执行相应操作，为按钮添加相应事件-->
    <input type="button" value="改变颜色" >  
    <input type="button" value="改变宽高" >
    <input type="button" value="隐藏内容" >
    <input type="button" value="显示内容" >
    <input type="button" value="取消设置" >
  </form>
  <script type="text/javascript">
  /**
   * 请编写"改变颜色"、"改变宽高"、"隐藏内容"、"显示内容"、"取消设置"的函数，点击相应按钮执行相应操作，点击"取消设置"按钮后，还原为最初的样式。
   * 请使用事件委托完成
   * */
   var EventUtil = {
    addHandler: function(element, type, handler){
        if (element.addEventListener){
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent){
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
      },
      getEvent: function(event){
        return event ? event : window.event;
      },
      
      getRelatedTarget: function(event){
          if (event.relatedTarget){
              return event.relatedTarget;
          } else if (event.toElement){
              return event.toElement;
          } else if (event.fromElement){
              return event.fromElement;
          } else {
              return null;
          }
      
      }
    }
  var txt = document.getElementById("txt");

    var form = document.forms[0];
    EventUtil.addHandler(form,'click',handler);
    function handler(event){
      var event = EventUtil.getEvent(event);
      var target = EventUtil.getRelatedTarget(event);
      switch(target.value){
        case "改变颜色":
          changeClass(txt,"txt_clo")
          break;
          case "改变宽高":
          changeClass(txt,"txt_wh");
          break;
          case "隐藏内容":
          addClass(txt,"hide");
            break;
          case "显示内容":
          removeClass(txt,"hide");
            break;
            case "取消设置":
            if(txt.getAttribute("class"))
            txt.removeAttribute("class");
            break;
      }
    }

    function changeClass(_el,_className){
      var cla = _el.getAttribute("class");
          if(cla){
            var split = cla.split(" ");
            var index = split.indexOf(_className);
            if(index>-1){
                split.splice(index,1);
            }else{
                split.push(_className);
            }
            _el.setAttribute("class",split.join(" "));
          }else{
            _el.setAttribute("class",_className);
          }
    }

    function addClass(_el,_className){
      var cla = _el.getAttribute("class");
          if(cla){
            var split = cla.split(" ");
            var index = split.indexOf(_className);
            if(index==-1){
              split.push(_className);
            }
            _el.setAttribute("class",split.join(" "));
          }else{
            _el.setAttribute("class",_className);
          }
    }
    function removeClass(_el,_className){
      var cla = _el.getAttribute("class");
          if(cla){
            var split = cla.split(" ");
            var index = split.indexOf(_className);
            if(index>-1){
              split.splice(index,1);
            }
            _el.setAttribute("class",split.join(" "));
          }
    }
   
   
  </script>
</body>
</html>